package business.controleacesso;

import java.util.HashSet;
import java.util.Set;

import business.sistema.ObjetoSistema;

public class Pagina extends ObjetoSistema
{
	private static final long serialVersionUID = 6826206531062530003L;
	private int codigo;
	private String nome;
	private Set<PaginaPerfil> perfis;
	private Set<PaginaUserNet> usuarios;
	
	public int getCodigo()
	{
		return codigo;
	}
	
	public void setCodigo(int codigo)
	{
		this.codigo = codigo;
	}
	
	public String getNome()
	{
		return nome;
	}
	
	public void setNome(String nome)
	{
		this.nome = nome;
	}

	public Set<PaginaPerfil> getPerfis()
	{
		if(perfis == null)
		{
			perfis = new HashSet<PaginaPerfil>();
		}
		
		return perfis;
	}

	public void setPerfis(Set<PaginaPerfil> perfis)
	{
		this.perfis = perfis;
	}

	public Set<PaginaUserNet> getUsuarios()
	{
		if(usuarios == null)
		{
			usuarios = new HashSet<PaginaUserNet>();
		}
		
		return usuarios;
	}

	public void setUsuarios(Set<PaginaUserNet> usuarios)
	{
		this.usuarios = usuarios;
	}
	
	public boolean aceitaUsuario(UserNet usuario)
	{
		boolean aceita = false;
		
		// Verifica se o perfil do usuario possibilita a entrada dele
		for(PaginaPerfil paginaPerfil : getPerfis())
		{
			Perfil perfil = paginaPerfil.getPerfil();
			
			if(perfil.getCodigo() == usuario.getPerfil().getCodigo())
			{
				aceita = true;
				break;
			}
		}
		
		if(!aceita)
		{
			// Verifica se o usuario esta cadastrado para ter acesso a essa pagina
			for(PaginaUserNet paginaUserNet : getUsuarios())
			{
				UserNet usuarioPagina = paginaUserNet.getUsuario();
				
				if(usuarioPagina.getCodigo() == usuario.getCodigo())
				{
					aceita = true;
					break;
				}
			}
		}
		
		return aceita;
	}
}
